Field of the Invention
Embodiments of the present invention generally relate to constraining slice header processing overhead in video coding.
Description of the Related Art
The Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T WP3/16 and ISO/IEC JTC 1/SC 29/WG 11 is currently developing the next-generation video coding standard referred to as High Efficiency Video Coding (HEVC). Similar to previous video coding standards such as H.264/AVC, HEVC is based on a hybrid coding scheme using block-based prediction and transform coding. First, the input signal is split into rectangular blocks that are predicted from the previously decoded data by either motion compensated (inter) prediction or intra prediction. The resulting prediction error is coded by applying block transforms based on an integer approximation of the discrete cosine transform, which is followed by quantization and coding of the transform coefficients.
Similar to prior video coding standards, a picture may be subdivided into one or more independently decodable slices. A slice header is transmitted for each slice. This header contains high-level parameters for decoding the data in the associated slice. Such parameters may include, for example, a picture order counter, reference picture parameter sets, SAO (sample adaptive offset) control parameters, reference picture list parameters and modification parameters, de-blocking filter control parameters, a weighted prediction table, in-loop filter slice on/off control flag, and sub-stream entries, etc.
The processing overhead associated with a slice header includes slice header parsing, slice-level operations such as reference picture list re-ordering, and CABAC resets. In typical video decoder designs, slice header parsing and operations such as reference picture list re-ordering are implemented in software for flexibility and error resiliency reasons. What software can do is fairly limited. Therefore, processing slice headers may introduce significant overhead for real-time decoder implementations if a bit stream contains the maximum number of slices permitted by the standard. Accordingly, constraining the overhead of slice header parsing is desirable.